iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
1

讓區塊鏈可以執行程式,比特幣的 OP_RETURN 不夠用?那就自己弄一條區塊鏈吧!

Vitalik Buterin,這位來自俄羅斯的年輕人,原本是比特幣區塊鏈社群的工程師。提議擴容比特幣區塊鏈的指令,讓區塊鏈上可以做更多的事。

但是比特幣區塊鏈社群認為,比特幣區塊鏈不該有交易以外的功能,所以不支持 Vitalik 的提案。不甘於此的 Vitalik,在2014年透過ICO眾籌,成功開創以太坊區塊鏈(ETH)。

以太坊區塊鏈原本是由一家瑞士的公司開發,之後轉為以太坊基金會。以太坊區塊鏈的初期也是經過一波三折,經過多次的硬分岔,解決許多效能及安全的問題才有今天的發展。

最有名的硬分岔事件是第三次分叉:DAO和區段鏈分叉,這個分叉的主因來自於 The DAO 的一個創投組織透過以太坊區塊,進行募資時,募資流程有邏輯漏洞造成駭客可以無限制騙拿取以太幣。最後 The DAO 投票決定進行硬分岔,將區塊高度回到被駭客盜取之前。

這次的分岔當然造成許多人不滿,畢竟一個號稱無法串改資料、可信任的區塊鏈,卻可以因為投資人投票決定而回朔。這也讓人省思,區塊鏈一開始追求的民主到底是什麼?

硬分岔後,不願意接受這次硬分岔的一群人,繼續在原本的區塊繼續挖礦(繼續維持原區塊鏈網路)。而這條鏈就被稱為以太經典(ETC)。不知道這個故事的人(就像我),一開始根本搞不懂這兩個虛擬貨幣的差異。

那以太坊區塊鏈和比特幣區塊鏈有什麼差別呢?以太坊區塊鏈使用的共識機制與比特幣區塊鏈相似,皆是PoW共識,主要差異有:

  1. 出塊時間由10分鐘改為15秒鐘
  2. 使用 Partial Merkle Tree 紀錄交易,而不是UTXO
  3. 使用 EVM(Ethereum Virtual Machine),執行智能合約(smart contract)

當然還有許多技術細節的差異,就不贅述。

小田:智能合約是什麼呢?

智能合約就是一個可以執行的程式碼!有各種不同的撰寫模式(常見的Solidity,同組有另一位大大就是寫這個為主題),然後透過編譯器編譯成 op code 在 EVM 上執行。以太坊的網路節點EVM,就包含執行這個 op code 的能力。

一個可以在區塊鏈上執行的程式碼出現啦!那這個功能,到底可以完成什麼事情呢?


上一篇
區塊鏈 2.0 來了!?
下一篇
當合約不再需要法律來仲裁,Smart contract
系列文
區塊鏈淺談:從創世到末日,上月球到落地30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
williamyeh
iT邦新手 5 級 ‧ 2018-12-01 17:10:00

什麼叫做『硬分岔』呢?

seconddim iT邦新手 5 級 ‧ 2018-12-03 10:54:38 檢舉

區塊鏈顧名思義就是一條由一個一個『區塊』,透過『共識演算法』與『雜湊』接起來的『鏈』。

當網路中有人使用不同的『共識演算法』就會產生『分岔』。(有可能有其他原因)

『分岔』又分為『軟分岔』與『硬分岔』

一般而言『軟分岔』是指當共識軟體(包含共識演算法)更新後,新版與舊版相容的情況(新的遊戲主機發布後,新款遊戲同時能在新、舊主機上跑的意思)。不同的節點即使使用不同版本的共識軟體,也可以在同一條鏈上同步區塊。

『硬分岔』是指當共識軟體改版後,舊版的共識軟體不認識新的共識軟體所產生的區塊,把這些不認識的區塊當作不合法的區塊丟棄,繼續使用舊的共識演算法。這時『鏈』就會『分岔』。

一般而言『硬分岔』後的舊鏈在不久後,透過共識軟體更新,就會消失。除非像是本文中的ETC,有一群不想用新的共識演算法的節點,繼續運作甚至自行有另外的更新,就會有不同鏈產生了。

補個時事:前陣子BCH(比特現金)也因為理念不同,硬分岔後產生兩個新鏈,BCHABC與BCHSV。

謝謝!

我要留言

立即登入留言